package net.sk.china.city.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;

/**
 * 商品库存对象 ar_inventory
 * 
 * @author gxf
 * @date 2024-03-27
 */
@Data
public class ArInventory
{
    private static final long serialVersionUID = 1L;

    /** 库存id */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /** 颜色 */
    private String color;

    /** 尺码 */
    private String size;

    /** 库存 */
    private Integer inventory;

    /** 时间段 */
    private String timeSlot;

    /** 商品id */
    private Long productId;

    /** 规格 */
    private String specifications;

    /** 时间区间 */
    private String timeInterval;

    /** 积分价值 */
    private BigDecimal integratedWorth;

    /** 商品编码 */
    private String proCode;

    /** 商品名称 */
    private String productName;

    /** 捐赠来源 */
    private String sourceId;

    /** 出库数量 */
    private Integer outboundNumber;

    /** 出库原因 */
    private String outboundReason;

    /** 所属地区（系统分区） */
    private String platformId;

    /** 出入库标志（1入库 2出库） */
    private String inventoryFlag;

    /** 入库者 */
    private String createBy;

    /** 入库时间时间 */
    private LocalDate createTime;

    /** 出库者 */
    private String updateBy;

    /** 出库时间 */
    private LocalDate updateTime;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("color", getColor())
            .append("size", getSize())
            .append("inventory", getInventory())
            .append("timeSlot", getTimeSlot())
            .append("productId", getProductId())
            .append("specifications", getSpecifications())
            .append("timeInterval", getTimeInterval())
            .append("integratedWorth", getIntegratedWorth())
            .append("proCode", getProCode())
            .append("productName", getProductName())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("outboundReason", getOutboundReason())
            .toString();
    }
}
